package cn.jetpiece.cloud.joss.app.modular.storage.enums;

import cn.jetpiece.cloud.model.exception.enums.AbstractExceptionEnum;

/**
 * @author XuJZ
 * @since 2020/3/12
 */
public enum OssObjectExceptionEnum implements AbstractExceptionEnum {

    /**
     * 资源禁止访问
     */
    FORBIDDEN(403, "资源禁止访问！"),

    /**
     * 访问资源不存在
     */
    NOT_FOUND(404, "访问资源不存在！"),

    /**
     * 不支持的上传模式
     */
    NOT_SUPPORT_PUT_OBJECT_MODE(100001, "不支持的上传模式！"),

    /**
     * 打开文件输入流失败
     */
    OPEN_INPUT_STREAM_ERROR(103001, "打开文件输入流失败！"),

    /**
     * 桶不存在
     */
    BUCKET_NOT_EXISTED(103008, "桶不存在！"),

    /**
     * 内容类型不存在
     */
    CONTENT_TYPE_NOT_EXISTED(103016, "内容类型不存在！"),
    /**
     * 桶重复
     */
    CONTENT_TYPE_REPEAT(103017, "内容类型重复！"),
    /**
     * 不支持的文件扩展名
     */
    CONTENT_TYPE_NOT_SUPPORT(103018, "不支持的文件扩展名！"),
    /**
     * 对象存储不存在
     */
    OBJECT_STORAGE_NOT_EXISTED(103014, "对对象存储不存在！"),
    /**
     * 对象上传失败
     */
    OBJECT_UPLOAD_ERROR(103016, "对象上传失败！"),
    /**
     * URL不能解析
     */
    URL_COULD_NOT_BE_PARSED(103017, "URL不能解析！"),
    /**
     * URL访问异常
     */
    URL_ACCESS_EXCEPTION(103018, "URL访问异常！"),
    /**
     * 对象删除失败
     */
    OBJECT_DELETE_ERROR(103020, "对象删除失败！"),
    /**
     * 桶内不为空不能删除
     */
    BUCKET_CANNOT_DELETE_WITHOUT_NULL(103022, "桶内不为空不能删除！"),
    /**
     * Base64格式异常
     */
    BASE64_FORMAT_EXCEPTION(103026, "Base64格式异常！");

    private int code;
    private String message;

    OssObjectExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public Integer getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    @Override
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

}
